package com.glls.stream;

import com.glls.lambda.pojo.Student;
import org.junit.Test;

import java.util.Arrays;
import java.util.List;

/**
 * @date 2022/10/4
 * @desc  中间操作
 * 映射
 * map(Function function)
 *
 *
 * 排序
 *
 */
public class StreamDemo3 {

    List<Student> list = Arrays.asList(
            new Student(1,"zs",18,88.0),
            new Student(2,"ls",19,88.5),
            new Student(3,"ww",21,98.0),
            new Student(4,"zl",19,86.0),
            new Student(5,"tq",17,92.0),
            new Student(5,"tq",17,92.0)
    );

    @Test
    public void test(){
        // 映射案例
        //输出90分以上的学员的名字
        list.stream()   // 创建流操作
                .filter(s->s.getScore()>90)    // 中间操作   过滤
                //.map((s)->s.getName())
                .map(Student::getName)  // 中间操作  映射
                .forEach(System.out::println);   // 终止操作
    }



    @Test
    public void test2(){
        // 排序案例
        list.stream()
                .sorted()    //自然排序   流中的元素 要具备 比较排序的能力
                .forEach(System.out::println);
    }

    @Test
    public void test3(){
        //排序案例
        list.stream()
                .sorted((stu1,stu2)->{
                    return stu1.getAge()>stu2.getAge()?1:-1;
                })
                .forEach(System.out::println);
    }

}
